MultiTrigger এবং MultiDataTrigger হল WPF (Windows Presentation Foundation) এর একটি শক্তিশালী বৈশিষ্ট্য, যা UI কন্ট্রোলের বিভিন্ন শর্তের (conditions) উপর ভিত্তি করে একাধিক স্টাইল পরিবর্তন বা কার্যকারিতা পরিচালনা করতে ব্যবহৃত হয়। এগুলি মূলত Triggers এর উন্নত রূপ, যেখানে একাধিক শর্ত পূর্ণ হলে কন্ট্রোলের ভিজ্যুয়াল স্টাইল বা প্রপার্টি পরিবর্তন করা যায়।
এগুলি Style বা ControlTemplate এর অংশ হিসেবে ব্যবহার করা হয় এবং UI কন্ট্রোলের আচরণ কাস্টমাইজ করতে সহায়তা করে।
MultiTrigger
MultiTrigger হল একটি trigger যা একাধিক শর্তের ভিত্তিতে UI কন্ট্রোলের প্রপার্টি পরিবর্তন করতে ব্যবহৃত হয়। এর মাধ্যমে আপনি একাধিক শর্ত একত্রে চেক করতে পারেন এবং শর্তগুলো পূর্ণ হলে UI কন্ট্রোলের স্টাইল পরিবর্তন করতে পারেন।
MultiTrigger এর বৈশিষ্ট্য (Features of MultiTrigger)
- Multiple Conditions:
MultiTrigger একাধিক শর্ত চেক করতে পারে এবং এগুলোর পূর্ণতা অনুসারে UI পরিবর্তন করে। - Conditional Styles:
এটি একাধিক শর্তের ভিত্তিতে কন্ট্রোলের স্টাইল পরিবর্তন করতে সাহায্য করে, যেমনIsMouseOver,IsEnabled, ইত্যাদি। - UI Customization:
MultiTrigger ব্যবহার করে আপনি কন্ট্রোলের বিভিন্ন প্রপার্টি যেমন ব্যাকগ্রাউন্ড, ফন্ট, আউটলাইন ইত্যাদি কাস্টমাইজ করতে পারেন।
MultiTrigger উদাহরণ (Example of MultiTrigger)
ধরা যাক, আপনি একটি Button কন্ট্রোলের স্টাইল পরিবর্তন করতে চান যখন বাটনটি হোভার করা হয় এবং সেটি সক্রিয় (enabled) থাকে।
MainWindow.xaml:
<Window x:Class="WPFApp.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MultiTrigger Example" Height="350" Width="525">
<Window.Resources>
<Style TargetType="Button">
<Style.Triggers>
<MultiTrigger>
<MultiTrigger.Conditions>
<!-- Condition 1: Button is enabled -->
<Condition Property="IsEnabled" Value="True"/>
<!-- Condition 2: Mouse is over the button -->
<Condition Property="IsMouseOver" Value="True"/>
</MultiTrigger.Conditions>
<MultiTrigger.Setters>
<!-- Change background color when both conditions are true -->
<Setter Property="Background" Value="LightGreen"/>
</MultiTrigger.Setters>
</MultiTrigger>
</Style.Triggers>
</Style>
</Window.Resources>
<Grid>
<Button Content="Hover Over Me" HorizontalAlignment="Center" VerticalAlignment="Center" Width="150" Height="50"/>
</Grid>
</Window>
এখানে, MultiTrigger ব্যবহার করা হয়েছে দুটি শর্তের জন্য:
- বাটনটি সক্রিয় (enabled) থাকতে হবে।
- মাউস বাটনের উপর থাকতে হবে।
যখন এই দুটি শর্ত পূর্ণ হবে, তখন বাটনের ব্যাকগ্রাউন্ড LightGreen রঙে পরিবর্তিত হবে।
MultiDataTrigger
MultiDataTrigger হল একটি বিশেষ ধরনের trigger যা ডেটা বাইন্ডিং এর শর্তের উপর ভিত্তি করে একাধিক শর্ত পরীক্ষা করে। এটি UI কন্ট্রোলের ডেটা মডেল বা প্রপার্টির সাথে সম্পর্কিত অবস্থার উপর ভিত্তি করে পরিবর্তন ঘটায়।
MultiDataTrigger এর বৈশিষ্ট্য (Features of MultiDataTrigger)
- Data Binding:
MultiDataTrigger ডেটা মডেলের একাধিক প্রপার্টির শর্ত পরীক্ষা করে। এটি UI কন্ট্রোলের ডেটা মডেলের শর্ত পূর্ণ হলে স্টাইল পরিবর্তন করতে ব্যবহৃত হয়। - Flexible Data Conditions:
এটি ডেটার ভিত্তিতে কন্ট্রোলের আচরণ পরিবর্তন করতে সহায়তা করে, যেমন: নির্দিষ্ট প্রপার্টির মানের উপর ভিত্তি করে UI কন্ট্রোলের স্টাইল পরিবর্তন করা। - Combination of Data Conditions:
MultiDataTrigger একাধিক ডেটা শর্ত একত্রে পরীক্ষা করতে পারে এবং একাধিক শর্ত পূর্ণ হলে UI কন্ট্রোলের ভিজ্যুয়াল পরিবর্তন করতে পারে।
MultiDataTrigger উদাহরণ (Example of MultiDataTrigger)
ধরা যাক, আপনি একটি TextBox এর স্টাইল পরিবর্তন করতে চান যখন দুটি শর্ত পূর্ণ হবে:
- TextBox এর টেক্সট একটি নির্দিষ্ট শব্দ ধারণ করবে।
- TextBox এর
IsEnabledপ্রপার্টিTrueহবে।
MainWindow.xaml:
<Window x:Class="WPFApp.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MultiDataTrigger Example" Height="350" Width="525">
<Window.Resources>
<Style TargetType="TextBox">
<Style.Triggers>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<!-- Condition 1: TextBox contains specific text -->
<Condition Binding="{Binding Text, RelativeSource={RelativeSource Self}}" Value="Hello"/>
<!-- Condition 2: TextBox is enabled -->
<Condition Property="IsEnabled" Value="True"/>
</MultiDataTrigger.Conditions>
<MultiDataTrigger.Setters>
<!-- Change background color when both conditions are true -->
<Setter Property="Background" Value="LightBlue"/>
</MultiDataTrigger.Setters>
</MultiDataTrigger>
</Style.Triggers>
</Style>
</Window.Resources>
<Grid>
<TextBox Text="Hello" HorizontalAlignment="Center" VerticalAlignment="Center" Width="200" Height="30"/>
</Grid>
</Window>
এখানে, MultiDataTrigger দুটি শর্তের ভিত্তিতে TextBox এর ব্যাকগ্রাউন্ড পরিবর্তন করবে:
- TextBox এর
Textপ্রপার্টি "Hello" হবে। - TextBox এর
IsEnabledপ্রপার্টিTrueথাকবে।
যখন উভয় শর্ত পূর্ণ হবে, তখন TextBox এর ব্যাকগ্রাউন্ড LightBlue রঙে পরিবর্তিত হবে।
MultiTrigger এবং MultiDataTrigger এর মধ্যে পার্থক্য
| Feature | MultiTrigger | MultiDataTrigger |
|---|---|---|
| Trigger Source | UI কন্ট্রোলের প্রপার্টি (যেমন IsMouseOver, IsEnabled ইত্যাদি) | UI কন্ট্রোলের ডেটা প্রপার্টি (যেমন Text, IsEnabled ইত্যাদি) |
| Conditions | UI কন্ট্রোলের বিভিন্ন শর্ত একসাথে ব্যবহার করা হয় | ডেটা বাইন্ডিংয়ের শর্ত একসাথে ব্যবহার করা হয় |
| Usage | UI কন্ট্রোলের অবস্থার ভিত্তিতে স্টাইল পরিবর্তন | ডেটা মডেলের শর্তের ভিত্তিতে UI কন্ট্রোলের স্টাইল পরিবর্তন |
| Example | IsMouseOver এবং IsEnabled কন্ডিশন একসাথে চেক করা | Text এবং IsEnabled কন্ডিশন একসাথে চেক করা |
সারাংশ (Summary)
- MultiTrigger এবং MultiDataTrigger WPF তে UI কন্ট্রোলের শর্তের উপর ভিত্তি করে একাধিক কন্ডিশন পরীক্ষা করে এবং তা পূর্ণ হলে কন্ট্রোলের স্টাইল বা আচরণ পরিবর্তন করে।
- MultiTrigger UI কন্ট্রোলের বিভিন্ন প্রপার্টির শর্তের উপর ভিত্তি করে কাজ করে, যখন MultiDataTrigger ডেটা মডেলের শর্তের উপর ভিত্তি করে কাজ করে।
- এই দুটি টুল WPF অ্যাপ্লিকেশনগুলির স্টাইল এবং আচরণকে আরও ডাইনামিক এবং ইন্টারেকটিভ করতে সাহায্য করে।
Read more